<?php
session_cache_limiter("nocache");
//session_start();
require_once('../utilidades/ConexionBD.php');
require_once('SeguridadParametroTipo.php');

class SeguridadParametro {
    
    //--- Atributos
    private $id=0;
    private $fechaGrab;
    private $usuarioGrab;
    private $activo;
    private $codParametro;
    private $parametroTipo;
    private $nombreParametro;
    private $descripcion;
    private $orden;
    private $valor;
    private $readOnly;
    private $ocultar;
    private $tipoDato;
    
    //--- constructor
    function __construct(){
        $this->parametroTipo=new SeguridadParametroTipo();
    }    
    
    //--- Metodos        
    public function selectByCodigo($codParametro){
        //--- defino el codigo
        $this->codParametro=$codParametro;
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncSeguridadParametro\"('selectByCodigo',NULL,NULL,NULL,NULL,NULL,'" . $this->codParametro . "',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        
        while($row = pg_fetch_array($res)) 
         {
            $this->id               =$row["@id"];
            $this->fechaGrab        =$row["@fechaGrab"];
            $this->usuarioGrab      =$row["@usuarioGrab"];
            $this->activo           =$row["@activo"];
            $this->codParametro     =$row["@codParametro"];
            $this->nombreParametro  =$row["@nombreParametro"];            
            $this->descripcion      =$row["@descripcion"];
            $this->orden            =$row["@orden"];
            $this->valor            =$row["@valor"];
            $this->readOnly         =$row["@readOnly"];
            $this->ocultar          =$row["@ocultar"];
            $this->tipoDato         =$row["@tipoDato"];
            
            $this->parametroTipo->selectByCodigo($row["@codParametroTipo"]);            
         }
         ConexionBD::get()->desconectarse();        
         return json_encode("");
    }
    
    public function selectAllHTMLTableFormat(){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncSeguridadParametro\"('selectAll',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            echo str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()));                
            return null;
        }
        
        //--- debo armar una lista de objetos        
        $html="";
        while($row = pg_fetch_array($res)) {
            $html=$html."<tr id='".$row["@id"]."'>";
            $html=$html."<td><a href='#' class='link_editar'>".$row["@codMaePais"]."</a></td>";        
            $html=$html."<td>".$row["@nombreMaePais"]."</td>";        
            $html=$html."<td><img class='icon-remove' id='icon-remove' src='../recursos/imagenes/remove.png' title='Eliminar el Registro'></td>";        
            $html=$html."</tr>";                    
        }
        
        $list = array();
        while($row = pg_fetch_array($res)) {
            $p=new SeguridadParametro();
            $p->id               =$row["@id"];
            $p->fechaGrab        =$row["@fechaGrab"];
            $p->usuarioGrab      =$row["@usuarioGrab"];
            $p->activo           =$row["@activo"];
            $p->codParametro     =$row["@codParametro"];
            $p->nombreParametro  =$row["@nombreParametro"]; 
            $p->descripcion      =$row["@descripcion"];
            $p->orden            =$row["@orden"];
            $p->valor            =$row["@valor"];
            $p->readOnly         =$row["@readOnly"];
            $p->ocultar          =$row["@ocultar"];
            $p->tipoDato         =$row["@tipoDato"];
            
            $p->getParametroTipo()->selectByCodigo($row["@codParametroTipo"]);
            
            $list[] = $p;
        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno la lista de objetos
        return $list;        
    }
    
    public function update(){
        //--- verifico que el registro actual exista
        if($this->id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncSeguridadParametro\"('update',NULL,".$this->id.",NULL,'ADMIN_XXX','".(($this->activo) ? 'true' : 'false')."','".$this->codParametro."','".$this->parametroTipo->getCodParametroTipo()."','".$this->nombreParametro."','".$this->descripcion."','".$this->orden."','".$this->valor."','".$this->readOnly."','".$this->ocultar."','".$this->tipoDato."');";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }
    
    public function insert($activo,$codParametro,$codParametroTipo,$nombreParametro,$descripcion,$orden,$valor,$readOnly,$ocultar,$tipoDato){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncSeguridadParametro\"('insert',NULL,NULL,NULL,'ADMIN_XXX','".(($activo) ? 'true' : 'false')."','".$codParametro."','".$codParametroTipo."','".$nombreParametro."','".$descripcion."','".$orden."','".$valor."','".($readOnly ? 'true' : 'false')."','".($ocultar ? 'true' : 'false')."','".$tipoDato."');";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        ConexionBD::get()->desconectarse();        
        //--- debo retornar el id que se genero al hacer la insercion
        while($row = pg_fetch_array($res)) {
            return json_encode(array("id"=>$row["@id"]));
        }
        //-- retorno sino devolvio un id, retorno cero para que no se generen erroes en la vista
        return json_encode(array("id"=>"0"));
    }
    
    public function delete($id){
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }        
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncSeguridadParametro\"('delete',NULL,".$id.",NULL,'ADMIN_XXX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        ConexionBD::get()->desconectarse();        
        
        if($id==$this->id){
            $this->id               =null;
            $this->fechaGrab        =null;
            $this->usuarioGrab      =null;
            $this->activo           =null;
            $this->codParametro     =null;
            $this->parametroTipo    =new SeguridadParametroTipo();
            $this->nombreParametro  =null;
            $this->descripcion      =null;
            $this->orden            =null;
            
        }
        return json_encode("");
    }
    
    //--- Setters y Getters
    public function getId() {
        return $this->id;
    }
    public function getFechaGrab() {
        return $this->fechaGrab;
    }
    public function getUsuarioGrab() {
        return $this->usuarioGrab;
    }
    public function getActivo() {
        return $this->activo;
    }
    public function getCodParametro() {
        return $this->codParametro;
    }
    public function getNombreParametro() {
        return $this->nombreParametro;
    }
    public function setId($id) {
        $this->id = $id;
    }
    public function setFechaGrab($fechaGrab) {
        $this->fechaGrab = $fechaGrab;
    }
    public function setUsuarioGrab($usuarioGrab) {
        $this->usuarioGrab = $usuarioGrab;
    }
    public function setActivo($activo) {
        $this->activo = $activo;
    }
    public function setCodParametro($codParametro) {
        $this->codParametro = $codParametro;
    }
    public function setNombreParametro($nombreParametro) {
        $this->nombreParametro = $nombreParametro;
    }
    
    public function getDescripcion() {
        return $this->descripcion;
    }

    public function setDescripcion($descripcion) {
        $this->descripcion = $descripcion;
    }

    public function getOrden() {
        return $this->orden;
    }

    public function setOrden($orden) {
        $this->orden = $orden;
    }
    
    public function getParametroTipo() {
        return $this->parametroTipo;
    }

    public function setParametroTipo($parametroTipo) {
        $this->parametroTipo = $parametroTipo;
    }

    public function getValor() {
        return $this->valor;
    }

    public function setValor($valor) {
        $this->valor = $valor;
    }

    public function getReadOnly() {
        return $this->readOnly;
    }

    public function setReadOnly($readOnly) {
        $this->readOnly = $readOnly;
    }

    public function getOcultar() {
        return $this->ocultar;
    }

    public function setOcultar($ocultar) {
        $this->ocultar = $ocultar;
    }

    public function getTipoDato() {
        return $this->tipoDato;
    }

    public function setTipoDato($tipoDato) {
        $this->tipoDato = $tipoDato;
    }



//--- FIN Setters y Getters
    
    
}

?>
